package com.test32_网络编程.hello.server;

import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * OSI七层模型：
 * 物理层(比特数据)
 * 数据链路层(数据帧)
 * 网络层(数据包)
 * 传输层(数据段)
 * 会话层(数据)
 * 表示层(数据)
 * 应用层(数据)
 *
 * C/S (Client / Service) 结构，客户端/服务器
 * B/S (Browser / Service) 结构，浏览器/服务器
 *
 * TCP程序：使用三次握手和四次握手的方式，保证所有的数据可靠的进行传输。
 * UDP程序：发送数据报，而接收数据报的一方不一定可以接受到信息。
 */
public class HelloServer {

    /**
     * ServerSocket，服务器端
     */
    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("【HelloServer】服务器端启动监听......");
        Socket client = serverSocket.accept();  // 等待客户端连接
        // PrintWriter out = new PrintWriter(client.getOutputStream());
        // 这里必须使用字节流
        PrintStream out = new PrintStream(client.getOutputStream());    // 通过打印流输出
        out.println("www.yootk.com");   // 输出信息
        client.shutdownOutput();    // 数据发送完毕后，再进行关闭
        serverSocket.close();
    }
}
